package cn.iocoder.yudao.module.trade.service.depositorderlackbottlesrelation;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.trade.controller.admin.depositorderlackbottlesrelation.vo.*;
import cn.iocoder.yudao.module.trade.dal.dataobject.depositorderlackbottlesrelation.DepositOrderLackBottlesRelationDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 欠瓶记录对应瓶数据 Service 接口
 *
 * @author 管理员
 */
public interface DepositOrderLackBottlesRelationService {

    /**
     * 创建欠瓶记录对应瓶数据
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createDepositOrderLackBottlesRelation(@Valid DepositOrderLackBottlesRelationSaveReqVO createReqVO);

    /**
     * 更新欠瓶记录对应瓶数据
     *
     * @param updateReqVO 更新信息
     */
    void updateDepositOrderLackBottlesRelation(@Valid DepositOrderLackBottlesRelationSaveReqVO updateReqVO);

    /**
     * 删除欠瓶记录对应瓶数据
     *
     * @param id 编号
     */
    void deleteDepositOrderLackBottlesRelation(Long id);

    /**
     * 获得欠瓶记录对应瓶数据
     *
     * @param id 编号
     * @return 欠瓶记录对应瓶数据
     */
    DepositOrderLackBottlesRelationDO getDepositOrderLackBottlesRelation(Long id);

    /**
     * 获得欠瓶记录对应瓶数据分页
     *
     * @param pageReqVO 分页查询
     * @return 欠瓶记录对应瓶数据分页
     */
    PageResult<DepositOrderLackBottlesRelationDO> getDepositOrderLackBottlesRelationPage(DepositOrderLackBottlesRelationPageReqVO pageReqVO);

    /**
     *  根据欠瓶记录id查询对应的钢瓶
     * @param id
     * @return
     */
    List<DepositOrderLackBottlesRelationRespVO> getDepositOrderRelationByLackId(Long id);

    void insertBathRelation(List<DepositOrderLackBottlesRelationRespVO> relationRespVOList);
}